package com.glq1218.permission.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.glq1218.domain.*;
import com.glq1218.permission.bo.AddPermissionBO;
import com.glq1218.permission.bo.PermissionBO;
import com.glq1218.permission.bo.QueryPermissionBO;
import com.glq1218.permission.bo.UpdatePermissionBO;
import com.glq1218.permission.entity.Permission;

import java.io.Serializable;
import java.util.List;
import java.util.Set;

/**
 * @author glq1218
 * @description TODO
 * @since 2023/4/18 15:09
 */
public interface PermissionService extends IService<Permission> {
    PaginationResult<PermissionBO> queryPermissionList(PaginationParam paginationParam, SortParam sortParam, IntervalStr intervalStr, QueryPermissionBO queryPermissionBO);

    List<RolePermission> queryAllPermission();

    PermissionBO getPermissionById(Serializable id);

    String addPermission(AddPermissionBO addPermissionBO);

    String updatePermission(UpdatePermissionBO updatePermissionBO);

    List<MenuTree> queryMenuTree();

    List<MenuTree> queryTopMenuTree();

    Set<String> queryPermissionByUserId(Long id);
}
